Можно ли сделать неблокируемый общий ресурс Windows (файлы, которые другие люди используют удаленно, не блокируются)?

8

Субъект в значительной степени это говорит.

Я разработчик, и на своем рабочем месте я разработал небольшое внутреннее приложение, которое время от времени использую я и некоторые из моих коллег. Чтобы сделать последнюю версию доступной для них, я поделился папкой, в которой находятся результаты компиляции. Однако это означает, что всякий раз, когда они его используют, я больше не могу его скомпилировать - файлы заблокированы.

Есть ли способ поделиться папкой, но запретить удаленным людям блокировать файлы? В любом случае файлы уже доступны только для чтения. Возможно, есть другое решение, которое будет служить моим целям?

Vilx-
источник
1
Вы говорите, что хотите заменить исполняемый код, в то время как другие люди активно запускают этот код?
Blackbeagle
@ Blackbeagle - Ну ... да. : D Хорошо, так что я думаю, что это немного экстремально, но в то же время я хотел бы, чтобы они получали «последнюю версию» автоматически при следующем запуске. Хорошо, я думаю, что ClickOnce - это решение, хотя оно и выглядит немного излишним. : P
Vilx-

Ответы:

3

Возможно, вы захотите взглянуть на UseOpportunisticLocking под HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters. Там есть несколько дополнительных параметров, которые могут быть интересны.

Однако могу ли я спросить, почему вы решили распространять этот способ? не зная, о чем написано ваше заявление, я могу только догадываться, почему вы решили распространять таким образом.

Если вы написали приложение .NET (я думаю, что вам нужно хотя бы 3,5?), Я мог бы предложить вам взглянуть на развертывание ClickOnce с MSDN:

ClickOnce - это технология развертывания, которая позволяет создавать самообновляющиеся приложения для Windows, которые можно устанавливать и запускать с минимальным взаимодействием с пользователем.

Я использовал ClickOnce для нескольких наших внутренних приложений с большим успехом, его автоматическое обновление очень мощное и не требует большого количества дополнительного кода (просто изменив версию сборки и нажав «Развернуть»).

Однако в этом есть некоторые подводные камни, в частности, мы столкнулись с проблемой для приложения, для которого требовались повышенные права UAC. Программы, которые требуют этого, не поддерживаются ClickOnce Deployment.

aolszowka
источник
Я распространяю это так, потому что это простой способ распространения. Да, это приложение .NET 3.5, поэтому я мог бы использовать с ним ClickOnce. Хотя, боюсь, я могу забыть развернуть его, когда я его поменяю. : P Но это достойная идея, я буду иметь в виду!
Vilx-
Извините, если что-то пошло не так, я все еще распространяю через общие папки (в тех случаях, когда я не могу использовать ClickOnce), но когда я нашел ClickOnce, это был огромный спаситель жизни, и я ужасаюсь, когда не могу его использовать :)!
aolszowka
0

Насколько он велик и является ли это ограничивающим фактором? есть ли причина, по которой вы не просто создаете зеркальную копию (синхронизацию), чтобы они использовали копию, отличную от вашей?

SyncToy v2.1 - это простой бесплатный инструмент для синхронизации, который без проблем сможет воспроизвести ваши данные.

невдохновленный
источник
Я мог бы, это не большой (ниже 20 МБ), но что и когда синхронизировать это?
Vilx
Ссылка на «что» добавлена ​​выше. Что касается «когда», это определяется тем, как вы его настраиваете.
скучный