题目解析:
【本题答案有争议】
定作人不履行协助义务致使承揽工作不能完成的,承揽人可以催告定作人在合理期限内履行义务,并可以顺延履行期限;定作人逾期不履行的,承揽人可以依法解除合同。A错误;
承揽人将其承揽的主要工作交由第三人完成的,应当就该第三人完成的工作成果向定作人负责;未经定作人同意的,定作人也可以解除合同 。
B错误;
定作人在承揽人完成工作前可以随时解除承揽合同,造成承揽人损失的,应当赔偿损失。C错误,D正确。
【未经定作人的同意】,承揽人将承揽的主要工作交由第三人完成的,定作人可以解除合同,B选项有个前提,也就是如果是未经定作人的同意,则B选项是成立的。单选题,需要选择最符合题意的选项,相对来说本题D选项更符合题意。定作人解除合同的前提是赔偿承揽人的损失。