Jeśli mam jakieś pliki, które chcę skopiować z mojego projektu do .\bin\debug\
folderu podczas kompilacji, wydaje się, że muszę je umieścić w katalogu głównym projektu. Umieszczenie ich w podfolderze wydaje się kopiować je do .\bin\debug\
folderu w tej samej strukturze, w której są przechowywane.
Czy jest sposób, aby tego uniknąć?
Dla jasności: jeśli mam MyFirstConfigFile.txt
i MySecondConfigFile.txt
w ConfigFiles
folderze i ustawię ich Copy to Output na Copy ... , pojawią się w .\bin\debug\ConfigFiles\
folderze. Chcę, aby pojawiły się w .\bin\debug\
folderze.
źródło
copy "$(ProjectDir)subfolder_name\"* "$(ProjectDir)$(OutDir)"
$(OutDir)
(tj. Bez$(ProjectDir)
) ... w przeciwnym razie otrzymujesz błędy podwójnej ścieżkiMożesz użyć zadania MSBuild na swoim csproj, w ten sposób.
Edytuj swój plik csproj
<Target Name="AfterBuild"> <Copy SourceFiles="$(OutputPath)yourfiles" DestinationFolder="$(YourVariable)" ContinueOnError="true" /> </Target>
źródło
Możesz również umieścić pliki lub łącza w katalogu głównym eksploratora rozwiązań, a następnie ustawić właściwości plików:
Build action = Content
i
Copy to Output Directory = Copy if newer
(na przykład)Aby uzyskać łącze, przeciągnij plik z eksploratora Windows do eksploratora rozwiązań, przytrzymując klawisz Shift i Control.
źródło
Osobiście wolę ten sposób.
Zmodyfikuj,
.csproj
aby dodać<ItemGroup> <ContentWithTargetPath Include="ConfigFiles\MyFirstConfigFile.txt"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <TargetPath>%(Filename)%(Extension)</TargetPath> </ContentWithTargetPath> </ItemGroup>
źródło
skopiuj z podfolderu do podfolderu
if not exist "$(ProjectDir)$(OutDir)subfolder" mkdir "$(ProjectDir)$(OutDir)subfolder" copy "$(ProjectDir)subfolder\" "$(ProjectDir)$(OutDir)subfolder\"
źródło
Chcesz użyć wydarzenia Post-Build w swoim projekcie. Możesz tam określić dane wyjściowe i istnieją wartości makr dla często używanych rzeczy, takich jak ścieżka projektu, nazwa elementu itp.
źródło
Możesz użyć zdarzenia PostBuild projektu. Po zakończeniu kompilacji możesz uruchomić plik wsadowy DOS i skopiować żądane pliki do żądanego folderu.
źródło
Znalazłem to pytanie podczas wyszukiwania hasła „skopiuj pliki do folderu aplikacji w czasie kompilacji”. Wygląda na to, że OP już to załatwiło, ale jeśli nie:
W programie Visual Studio kliknij plik prawym przyciskiem myszy, wybierz właściwości, a następnie zmień opcję „kopiuj na dane wyjściowe” na „zawsze”. Zobacz http://msdn.microsoft.com/en-us/library/0c6xyb66.aspx
źródło