我的 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,只是不喜欢版本号。我希望它就像为当前构建运行“替换”汇编命令一样简单。这可能吗 ?
谢谢!!