簡體   English   中英

Visual Studio 2015 UP1始終重建我的C#netmodule-output項目。 可以解決嗎?

[英]Visual Studio 2015 UP1 always rebuilds my C# netmodule-output project. Can it be fixed?

我有一個名為“ X”的C#項目,我修改了X.csproj文件,並將<OutputType>Library</OutputType>更改為<OutputType>Module</OutputType>這意味着我現在正在輸出.netmodule文件而不是.netmodule文件。 dll文件,這很酷,我可以將netmodules用作C ++ / CLI項目的輸入。

但是,Visual Studio堅持在每次構建時都重新編譯項目,當我將構建輸出的詳細程度變為“診斷”時,我在輸出中看到以下行:

項目“ X”不是最新的。 缺少輸出文件'C:... \\ X \\ bin \\ Debug \\ X.exe'。

當然,問題在於編譯器正在輸出X.netmodule,而不是X.exe,因此將永遠找不到X.exe,因此我的項目將在每個版本上重新編譯。 更糟糕的是,如果我從csproj的命令行運行msbuild,則會發生正確的行為,即僅當項目中的文件已更改時才重新生成。

這使我相信VS2015 [或其他]錯誤地計算了最終輸出名稱,因為我為<OutputType>指定了Module,並且是VS2015強制進行了重新構建,而不是Msbuild。

我知道修改.csproj的<OutputType>是非標准的,並且不受支持,但是其他人似乎正在使用此方法,這似乎是一個已知問題,可能有解決方法。

提前致謝。

好的,我很樂意聽取其他對此有深刻見解的人的信息,但我確實提出了一種解決方法。 我只是將復制命令添加到“屬性”>“構建事件”>“構建后事件”命令行中。

復制$(TargetDir)$(TargetName).netmodule $(TargetDir)$(TargetName).exe

這意味着當VS查找exe(而不是.netmodule)時,它將找到它,並且它與.netmodule具有相同的日期,因此VS關於是否重新生成的邏輯應得到糾正。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM