0

我的 C# 项目中有一个预构建事件设置为以下内容:

call "$(DevEnvDir)..\Tools\vsvars32.bat"
"$(DevEnvDir)devenv.exe"  "$(SolutionDir)..\MyApp\MyApp.sln" /build $(Configuration)
REM ****** Copy some dependencies ******
ECHO Copy unmanged dlls
COPY  $(SolutionDir)..\MyApp\x64\$(Configuration)\MyApp.dll $(TargetDir)\.
COPY  $(SolutionDir)..\MyApp\x64\$(Configuration)\MyApp.pdb $(TargetDir)\.
COPY  $(SolutionDir)..\MyApp\x64\$(Configuration)\MyAppInterop.dll $(TargetDir)\.
COPY $(SolutionDir)..\MyApp\x64\$(Configuration)\MyAppInterop.pdb $(TargetDir)\.
REM ******COPY complete ******

它编译解决方案并将 MyApp.dll 和 MyAppInterop.dll 复制到我的目标目录,以便我的 C# 项目使用 c++ CLI 互操作 MyAppInterop.dll 来引用其程序集。但是,当 MyAppInterop 的构建成功时,它会被分配一个新版本。我的 C# 中的当前引用引用了以前的构建版本。有没有办法告诉 IDE/编译器在预构建阶段使用这个新复制的版本而不是旧版本......?我可以看到该文件已正确复制到我期望的目标位置。此外,在 VS 中,我在输出中看到以下内容:

考虑为“....\x64\Debug\MyAppInterop.dll”,但其名称“MyAppInterop, Version=1.0.4980.14942, Culture=neutral, PublicKeyToken=ddf0b8c12962ac51”不匹配。

它找到了它的dll,只是不喜欢版本号。我希望它就像为当前构建运行“替换”汇编命令一样简单。这可能吗 ?

谢谢!!

4

0 回答 0